module DistributedGISA

# imports
using Graphs: SimpleDiGraph, add_edge!, strongly_connected_components, gdistances, inneighbors 
using LazySets: Hyperrectangle, ConvexHullArray, Projection, volume, vertices # imported for plotting purposes
using SpatialIndexing: Rect, insert!, RTree, intersects_with
using IntervalArithmetic

# exports
export  DiscreteSpace, 
        @interval, 
        hull,
        create_graph,
        create_graph_4d, 
        select_nonleaving_cells, 
        create_boxes,
        group_missing_states,
        group_missing_states_4d,
        ConvexHullArray,
        volume,
        Projection,
        vertices,
        all_inneighbors,
        select_test_cells,
        reconstruct_set,
        validate_set,
        validate_set_6d


# code starts here

include("abstracts.jl")
include("spaces.jl")
include("core.jl")
include("with_interconnection.jl")
include("without_interconnection.jl")

end # module
